function successResponse(res, message, data = {}, code = 200) {
  return res.status(code).json({
    status: true,
    message,
    data,
  });
}

function failureResponse(res, error) {
  if (error.name === 'SequelizeValidationError') {
    return res.status(400).json({
      status: false,
      message: '请求参数错误',
      errors: error.errors.map(err => err.message)
    });
  }

  if (error.name === 'BadRequestError') {
    return res.status(400).json({
      status: false,
      message: '请求参数错误',
      errors: [error.message]
    });
  }

  if (error.name === 'NotFoundError') {
    return res.status(404).json({
      status: false,
      message: '资源不存在',
      errors: [error.message]
    });
  }

  if (error.name === 'UnauthorizedError') {
    return res.status(401).json({
      status: false,
      message: '认证失败',
      errors: [error.message]
    });
  }

  if (error.name === 'JsonWebTokenError') {
    return res.status(401).json({
      status: false,
      message: '认证失败',
      errors: ['无效的token']
    });
  }
  if (error.name === 'TokenExpiredError') {
    return res.status(401).json({
      status: false,
      message: '认证失败',
      errors: ['token已过期']
    });
  }


  res.status(500).json({
    status: false,
    message: '服务器内部错误',
    errors: [error.message]
  });
}

module.exports = {
  successResponse,
  failureResponse
};